home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_09_11 / 9n11068c < prev    next >
Text File  |  1991-08-27  |  890b  |  25 lines

  1. Listing 3:
  2.  
  3.  
  4. #       compiled using ic960 -Aka -O3 -S fib.c _fib: 
  5. #
  6. _fib:
  7.         mov             g0,r15          # copy in-coming parameter
  8.         cmp     i       2,r15                   # determine in n < 2
  9.         add     o       16,sp,sp       # align stack to next 16-byte boundary
  10.         bl              .I47
  11.         ld      const   1,g0       # return 1 in g0 when n <= 2
  12.         ret     
  13. .I47:
  14.         sub     i       1,r15,g0       # place n-1 in g0
  15.         callj           _fib
  16.         st              g0,0x40(fp)     # store return value on stack
  17.         sub     i       2,r15,g0       # place n-2 in g0
  18.         callj           _fib
  19.         ld              0x40(fp),r11    # re-load fib(n-1) value
  20.         addi            g0,r11,r3       # add fib(n-1) and fib(n-2)
  21.         mov             r3,g0           # place return value in g0
  22.         ret     
  23.  
  24.  
  25.